package com.qdhh.enrollment.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qdhh.enrollment.dto.QuizSubmissionQueryDTO;
import com.qdhh.enrollment.model.QuizSubmission;
import com.qdhh.enrollment.vo.QuizSubmissionVO;

import java.util.Map;
import java.util.Optional;

public interface QuizSubmissionService extends IService<QuizSubmission> {

    /**
     * 统计答题次数（使用 student_id）
     */
    int countAttempts(String studentId);

    /**
     * 查找最新记录（使用 student_id）
     */
    Optional<QuizSubmission> findLatest(String studentId);

    /**
     * 查找最佳记录（使用 student_id）
     */
    Optional<QuizSubmission> findBest(String studentId);

    QuizSubmission saveSubmission(QuizSubmission submission);

    /**
     * 根据 student_id 分页查询（使用 student_id）
     */
    IPage<QuizSubmission> findByStudentId(String studentId, int page, int size);
    
    /**
     * 管理员查询考试记录（支持多条件筛选）
     */
    IPage<QuizSubmissionVO> querySubmissions(QuizSubmissionQueryDTO queryDTO);
    
    /**
     * 获取考试统计信息
     */
    Map<String, Object> getStatistics();
}
